1. Technical Field
The present invention relates in general to conversion between data protocols and in particular to conversion between complex data protocols, such as financial protocols, for which data mappings may not be either direct or without gaps. Still more particularly, the present invention relates to automatically generated executable code and data structures for converting data between two complex protocols.
2. Description of the Related Art
In data processing systems which convert datastreams from one architected protocol to another, translation operations on the data are required. In performing such translations, data mappings are typically devised to describe the requisite conversions. Some data mappings are straightforward or even trivial, such as that required for conversion between the American National Standard Code for Information Interchange (ASCII) and Extended Binary Code Decimal Interchange Code (EBCDIC) formats. Other data mappings, on the other hand, may be very complex. For instance, conversion between two airline control protocols for flight scheduling and routing or between financial protocols for electronic payment transactions may involved data mappings at various levels of the data model.
In these cases, a multitude of data translation operations at different levels may be required, from high level transaction identification to element level data structures. Additionally, there may be run time translations dependent upon previous operational details. To write and maintain code in such a complex environment, particularly when a datastream is evolving and subject to constant change, is extremely difficult.
For instance, two leading financial protocols are: the Open Financial Exchange (OFX) specification, a standard generalized markup language (SGML) based, hypertext transmission protocol (HTTP) compliant financial protocol utilized by products such as Quicken and Microsoft Money to provide online banking services to their customer, with the current version 1.5.1 available at www.ofx.net; and the Integrion GOLD standard, a binary, structure-oriented protocol employed by banks within the Integrion Financial Network, with the current version 98.1 available at www.integrion.net.
A protocol converter is required to allow Quicken and other OFX clients to work with Integrion banks. While OFX and Gold both provide fundamentally the same types of functions (e.g., Balance Inquiry, Statement History, Transfers, Bill Pay, etc.), in many cases the transactions and/or transaction parameters for similar functions vary widely between the protocols. One OFX request may require execution of two or three Gold transactions, and certain Gold transactions within that series may need to be executed only where a certain property is set on the OFX request. Required properties within a Gold request may not always be provided within the OFX request, so that the appropriate Gold field must be retrieved elsewhere or calculated.
Furthermore, any converter enabling interoperability between the OFX and Gold protocols should be bidirectional, which further complicates the conversion process. All things considered, the mapping required for conversion between OFX and Gold is very complex. Conventional coding practices to create a converter would require a massive amount of code, would be extremely time-consuming to write, and would be very difficult to maintain.
It would be desirable, therefore, to automatically generate executable code and/or data structures to perform the protocol conversion, with a minimum of handcrafted code.
It is therefore one object of the present invention to provide improved conversion between data protocols.
It is another object of the present invention to provide improved conversion between complex data protocols, such as financial protocols, for which data mappings may not be either direct or without gaps.
It is yet another object of the present invention to automatically generate executable code and data structures for converting data between two complex protocols.
The foregoing objects are achieved as is now described. Complex data protocols, such as the financial protocols OFX and Gold, generate data streams in which some elements may not have a one-to-one mapping between protocols, some elements may have only conditional mapping between protocols, and some elements may not supply fields or parameters under a first protocol which are required under the second protocol. Executable code and/or data structures for data conversion between such complex protocols are automatically generated. An exhaustive definition of each protocol in machine readable format is obtained, complex mapping rules between elements are broken into atomic operations and procedures which are definable and encapsulated, and a structured flow for element conversion between protocols is defined. A mapping definition language specifying the mappings and procedures for each step in converting all elements is architected, and a tool is written to interpret the protocol definitions and the mapping definition, then generate the appropriate executable code and/or data structures. Manual coding is substantially reduced and product quality increase with reduction of handcrafted code.
The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description.